home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / SDKs / Now Utilities Plug Ins 6.0 / API Stuff / Now Shortcuts Plug Ins ƒ / Label / Main.c < prev    next >
C/C++ Source or Header  |  1996-03-07  |  2KB  |  74 lines

  1. // Label Plug In
  2. //
  3. // © 1996 Now Software, Inc
  4. // written by: hac
  5.  
  6. #include "Main.h"
  7.  
  8. MenuHandle    gLabelMenu;
  9.  
  10. pascal void main(PlugInInformation *plugInInformation)
  11. {
  12.     plugInInformation->version = kPlugInInformationVersionOne;
  13.     plugInInformation->plugInType = kLabelPlugInType;
  14.     plugInInformation->PrepareMenu = &PrepareMenu;
  15.     plugInInformation->CleanUpAfterMenuSelect = &CleanUpAfterMenuSelect;
  16.     plugInInformation->HandleSubMenuItemSelected = &HandleSubMenuItemSelected;
  17. }
  18.  
  19. pascal void PrepareMenu(InstantAccessInformation *information, short asPreview)
  20. {
  21.     MenuItemInformation    menuItem;
  22.     short                menuID;
  23.     MenuHandle            menu;
  24.     long                menuSize;
  25.     
  26.     
  27.     BlockMove("\pLabel", menuItem.text, kMenuItemTextSize);
  28.     
  29.     menu = (*information->FindMenu)("\pLabel");
  30.     if (menu != nil)
  31.         {
  32.         menuSize = GetHandleSize((Handle)menu);
  33.         
  34.         gLabelMenu = (MenuHandle)NewHandle(menuSize);
  35.         if (gLabelMenu != nil)
  36.             {
  37.             BlockMove(*menu, *gLabelMenu, menuSize);
  38.             
  39.             menuID = (*information->GetAvailableSubMenuID)();
  40.             (*gLabelMenu)->menuID = menuID;
  41.             
  42.             InsertMenu(gLabelMenu, -1);
  43.             
  44.             menuItem.version = kMenuItemInformationVersionOne;
  45.             menuItem.classification = kMiscellaneousClassification;
  46.             menuItem.type = kTextMenuItemType;
  47.             menuItem.id = 1;
  48.             menuItem.enabled = true;
  49.             menuItem.style = 0;
  50.             menuItem.mark = 0;
  51.             menuItem.hasSubMenu = true;
  52.             menuItem.subMenu = gLabelMenu;
  53.             menuItem.refCon = 0;
  54.             menuItem.owningPlugInType = kLabelPlugInType;
  55.             
  56.             (*information->AddMenuItem)(&menuItem);
  57.             }
  58.         }
  59. }
  60.  
  61. pascal void CleanUpAfterMenuSelect(InstantAccessInformation *information, short asPreview)
  62. {
  63.     DeleteMenu((*gLabelMenu)->menuID);
  64.     DisposeMenu(gLabelMenu);
  65. }
  66.  
  67. pascal void HandleSubMenuItemSelected(InstantAccessInformation *information, short menuID, short menuItemNumber)
  68. {
  69.     Str255    text;
  70.     
  71.     GetMenuItemText(gLabelMenu, menuItemNumber, text);
  72.     (*information->SelectFinderMenuItem)("\pLabel", text);
  73. }
  74.